
package com.cmcc.mss.psp_pms_importcommissionproblemapplysrv;

import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlType;
import javax.xml.datatype.XMLGregorianCalendar;


/**
 * <p>Java class for ICommissionProblem complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="ICommissionProblem">
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;sequence>
 *         &lt;element name="pmsId" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *         &lt;element name="pspId" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *         &lt;element name="projectRefId" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *         &lt;element name="projectName" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *         &lt;element name="projectCode" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *         &lt;element name="companyRefId" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *         &lt;element name="companyName" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *         &lt;element name="applyPerson" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *         &lt;element name="applyRemark" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *         &lt;element name="applyDate" type="{http://www.w3.org/2001/XMLSchema}date"/>
 *         &lt;element name="fileCollection" type="{http://mss.cmcc.com/PSP_PMS_ImportCommissionProblemApplySrv}IFile" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element name="Sequence" type="{http://www.w3.org/2001/XMLSchema}long"/>
 *         &lt;element name="Retain1" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *         &lt;element name="Retain2" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *         &lt;element name="Retain3" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *         &lt;element name="Retain4" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *         &lt;element name="Retain5" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *         &lt;element name="Retain6" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *         &lt;element name="Retain7" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *         &lt;element name="Retain8" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *         &lt;element name="Retain9" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *         &lt;element name="Retain10" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *       &lt;/sequence>
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ICommissionProblem", propOrder = {
    "pmsId",
    "pspId",
    "projectRefId",
    "projectName",
    "projectCode",
    "companyRefId",
    "companyName",
    "applyPerson",
    "applyRemark",
    "applyDate",
    "fileCollection",
    "sequence",
    "retain1",
    "retain2",
    "retain3",
    "retain4",
    "retain5",
    "retain6",
    "retain7",
    "retain8",
    "retain9",
    "retain10"
})
public class ICommissionProblem {

    @XmlElement(required = true)
    protected String pmsId;
    @XmlElement(required = true)
    protected String pspId;
    @XmlElement(required = true)
    protected String projectRefId;
    @XmlElement(required = true)
    protected String projectName;
    @XmlElement(required = true)
    protected String projectCode;
    @XmlElement(required = true)
    protected String companyRefId;
    @XmlElement(required = true)
    protected String companyName;
    @XmlElement(required = true)
    protected String applyPerson;
    @XmlElement(required = true)
    protected String applyRemark;
    @XmlElement(required = true)
    @XmlSchemaType(name = "date")
    protected XMLGregorianCalendar applyDate;
    protected List<IFile> fileCollection;
    @XmlElement(name = "Sequence")
    protected long sequence;
    @XmlElement(name = "Retain1", required = true, nillable = true)
    protected String retain1;
    @XmlElement(name = "Retain2", required = true, nillable = true)
    protected String retain2;
    @XmlElement(name = "Retain3", required = true, nillable = true)
    protected String retain3;
    @XmlElement(name = "Retain4", required = true, nillable = true)
    protected String retain4;
    @XmlElement(name = "Retain5", required = true, nillable = true)
    protected String retain5;
    @XmlElement(name = "Retain6", required = true, nillable = true)
    protected String retain6;
    @XmlElement(name = "Retain7", required = true, nillable = true)
    protected String retain7;
    @XmlElement(name = "Retain8", required = true, nillable = true)
    protected String retain8;
    @XmlElement(name = "Retain9", required = true, nillable = true)
    protected String retain9;
    @XmlElement(name = "Retain10", required = true, nillable = true)
    protected String retain10;

    /**
     * Gets the value of the pmsId property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getPmsId() {
        return pmsId;
    }

    /**
     * Sets the value of the pmsId property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setPmsId(String value) {
        this.pmsId = value;
    }

    /**
     * Gets the value of the pspId property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getPspId() {
        return pspId;
    }

    /**
     * Sets the value of the pspId property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setPspId(String value) {
        this.pspId = value;
    }

    /**
     * Gets the value of the projectRefId property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getProjectRefId() {
        return projectRefId;
    }

    /**
     * Sets the value of the projectRefId property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setProjectRefId(String value) {
        this.projectRefId = value;
    }

    /**
     * Gets the value of the projectName property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getProjectName() {
        return projectName;
    }

    /**
     * Sets the value of the projectName property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setProjectName(String value) {
        this.projectName = value;
    }

    /**
     * Gets the value of the projectCode property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getProjectCode() {
        return projectCode;
    }

    /**
     * Sets the value of the projectCode property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setProjectCode(String value) {
        this.projectCode = value;
    }

    /**
     * Gets the value of the companyRefId property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getCompanyRefId() {
        return companyRefId;
    }

    /**
     * Sets the value of the companyRefId property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setCompanyRefId(String value) {
        this.companyRefId = value;
    }

    /**
     * Gets the value of the companyName property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getCompanyName() {
        return companyName;
    }

    /**
     * Sets the value of the companyName property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setCompanyName(String value) {
        this.companyName = value;
    }

    /**
     * Gets the value of the applyPerson property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getApplyPerson() {
        return applyPerson;
    }

    /**
     * Sets the value of the applyPerson property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setApplyPerson(String value) {
        this.applyPerson = value;
    }

    /**
     * Gets the value of the applyRemark property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getApplyRemark() {
        return applyRemark;
    }

    /**
     * Sets the value of the applyRemark property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setApplyRemark(String value) {
        this.applyRemark = value;
    }

    /**
     * Gets the value of the applyDate property.
     * 
     * @return
     *     possible object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public XMLGregorianCalendar getApplyDate() {
        return applyDate;
    }

    /**
     * Sets the value of the applyDate property.
     * 
     * @param value
     *     allowed object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public void setApplyDate(XMLGregorianCalendar value) {
        this.applyDate = value;
    }

    /**
     * Gets the value of the fileCollection property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the fileCollection property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getFileCollection().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link IFile }
     * 
     * 
     */
    public List<IFile> getFileCollection() {
        if (fileCollection == null) {
            fileCollection = new ArrayList<IFile>();
        }
        return this.fileCollection;
    }

    /**
     * Gets the value of the sequence property.
     * 
     */
    public long getSequence() {
        return sequence;
    }

    /**
     * Sets the value of the sequence property.
     * 
     */
    public void setSequence(long value) {
        this.sequence = value;
    }

    /**
     * Gets the value of the retain1 property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getRetain1() {
        return retain1;
    }

    /**
     * Sets the value of the retain1 property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setRetain1(String value) {
        this.retain1 = value;
    }

    /**
     * Gets the value of the retain2 property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getRetain2() {
        return retain2;
    }

    /**
     * Sets the value of the retain2 property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setRetain2(String value) {
        this.retain2 = value;
    }

    /**
     * Gets the value of the retain3 property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getRetain3() {
        return retain3;
    }

    /**
     * Sets the value of the retain3 property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setRetain3(String value) {
        this.retain3 = value;
    }

    /**
     * Gets the value of the retain4 property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getRetain4() {
        return retain4;
    }

    /**
     * Sets the value of the retain4 property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setRetain4(String value) {
        this.retain4 = value;
    }

    /**
     * Gets the value of the retain5 property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getRetain5() {
        return retain5;
    }

    /**
     * Sets the value of the retain5 property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setRetain5(String value) {
        this.retain5 = value;
    }

    /**
     * Gets the value of the retain6 property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getRetain6() {
        return retain6;
    }

    /**
     * Sets the value of the retain6 property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setRetain6(String value) {
        this.retain6 = value;
    }

    /**
     * Gets the value of the retain7 property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getRetain7() {
        return retain7;
    }

    /**
     * Sets the value of the retain7 property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setRetain7(String value) {
        this.retain7 = value;
    }

    /**
     * Gets the value of the retain8 property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getRetain8() {
        return retain8;
    }

    /**
     * Sets the value of the retain8 property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setRetain8(String value) {
        this.retain8 = value;
    }

    /**
     * Gets the value of the retain9 property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getRetain9() {
        return retain9;
    }

    /**
     * Sets the value of the retain9 property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setRetain9(String value) {
        this.retain9 = value;
    }

    /**
     * Gets the value of the retain10 property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getRetain10() {
        return retain10;
    }

    /**
     * Sets the value of the retain10 property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setRetain10(String value) {
        this.retain10 = value;
    }

}
